فرمان tr مخفف Translate است و برای
جایگزینی، حذف یا فشردهسازی کاراکترها در ورودی استفاده میشود.
این فرمان خط به خط عمل نمیکند، بلکه کل ورودی را به عنوان یک جریان داده (Stream) پردازش میکند.
tr ورودی را از STDIN میخواند و خروجی را به STDOUT میفرستد.
معمولاً با Pipe یا Redirection استفاده میشود.
توضیح: کاراکترهای موجود در set1 را با کاراکترهای موجود در set2 جایگزین میکند.
توضیح: محتوای فایل mohammad را نمایش میدهد (یک خط از فایل /etc/passwd).
توضیح: همه کاراکترهای : را با . جایگزین میکند.
توضیح: خروجی tr را در فایل mohammad2 ذخیره میکند.
| گزینه | توضیح | مثال |
|---|---|---|
-d |
حذف کاراکترهای مشخصشده | tr -d ':' < file |
-s |
فشردهسازی (چندین کاراکتر تکراری را به یک کاراکتر تبدیل میکند) | tr -s ' ' < file |
-c |
مکمل (همه کاراکترها به جز مجموعهی مشخصشده) | tr -cd 'a-z' < file |
-t |
کوتاهسازی (set1 را به اندازه set2 کوتاه میکند) | tr -t 'abc' '12' < file |
توضیح: همه اعداد (۰ تا ۹) را حذف میکند.
توضیح: همه حروف کوچک را به بزرگ تبدیل میکند.
توضیح: چندین فاصله را به یک فاصله تبدیل میکند.
توضیح: همه خطوط را به یک خط تبدیل میکند (خط جدید را با فاصله جایگزین میکند).
اگر set1 و set2 طول متفاوتی داشته باشند، tr از آخرین کاراکتر set2
برای مابقی کاراکترهای set1 استفاده میکند. برای مثال:
توضیح: 'a' → '1'، 'b' → '2'، 'c' → '2' (آخرین کاراکتر set2)
توضیح: فاصلههای اضافی خروجی ifconfig را فشرده میکند و سپس خطوط حاوی inet را نمایش میدهد.
توضیح: فایل /etc/passwd را میخواند، : را به فاصله تبدیل میکند و سپس اولین فیلد (نام کاربر) را با awk استخراج میکند.
| دستور | کاربرد |
|---|---|
tr 'a' 'b' < file |
جایگزینی 'a' با 'b' در فایل |
tr 'a-z' 'A-Z' < file |
تبدیل حروف کوچک به بزرگ |
tr -d ':' < file |
حذف کاراکتر ':' |
tr -s ' ' < file |
فشردهسازی فاصلههای تکراری |
tr '\n' ' ' < file |
تبدیل خط جدید به فاصله |
tr -cd 'a-zA-Z' < file |
فقط حروف انگلیسی را نگه میدارد |
tr همه 'a' را به 'b' تبدیل کنید.tr -d حذف کنید.tr 'a-z' 'A-Z' یک متن را به حروف بزرگ تبدیل کنید.tr -s ' ' فاصلههای اضافی یک فایل را فشرده کنید.ifconfig را با tr پردازش کنید تا فقط آیپی IPv4 را استخراج کنید.